package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

import java.util.ArrayList;

public class OtherStudentDao implements BaseStudentDao{
    /*3、Override注解
    - 用来检测当前的方法，是否是重写的方法，起到【校验】的作用*/

    //集合容器  一开始写的是 private static Student[] students=new Student[5];

    //<Student>里面是 数组中 的类型是 Student型
    private static ArrayList<Student> students=new ArrayList<>();

   /* static是静态加载块。
    解释：项目运行初始化过程会将static内部程序加载到内存中，不能有参数值等动态参数。
    备注：一般都是加载数据库连接时候用来加载数据库驱动用的。*/
    static {
       Student stu1 = new Student("heima001","张三","23","1999-11-11");
       Student stu2 = new Student("heima002","李四","24","2000-11-11");
       students.add(stu1);
       students.add(stu2);
    }
    @Override
    public boolean addStudent(Student stu) {
        students.add(stu);
        return true;
    }

    @Override
    public Student[] findAllStudent() {
        Student[] student1 = new Student[students.size()];
        for (int i=0;i<student1.length;i++){
            student1[i]=students.get(i);
        }
        return student1;
    }

    @Override
    public void deleteStudentById(String delId) {
        //查找 id在容器中的索引位置！
        int index=getIndex(delId);
        students.remove(index);
    }

    @Override
    public int getIndex(String id) {
        int index=-1;
        for (int i=0;i<students.size();i++){
            Student student=students.get(i);
            if (student !=null && student.getId().equals(id)){
                index=i;
                break;
            }
        }
        return index;
    }


    @Override
    public void updateStudent(String updateId, Student newStu) {
        //查找updateId, 在容器中的索引位置！
        int index=getIndex(updateId);
        students.set(index,newStu);
    }

}
